package com.nuoniu.sibanyun.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nuoniu.sibanyun.entity.SysDictData;
import com.nuoniu.sibanyun.entity.SysDictType;
import com.nuoniu.sibanyun.entity.dto.DictDataSaveDto;
import com.nuoniu.sibanyun.entity.dto.DictDataSearchDto;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 * 字典数据表 服务类
 * </p>
 *
 * @author baiqiang
 * @since 2020-05-25
 */
public interface ISysDictDataService extends IService<SysDictData> {

    /**
     * 分页查询
     * @param dictDataSearchDto
     * @return
     */
    Page<SysDictData> page(DictDataSearchDto dictDataSearchDto);

    /**
     * 新增/ 更新
     * @param dictDataSaveDto
     * @param request
     * @return
     */
    boolean saveOrUpdate(DictDataSaveDto dictDataSaveDto, HttpServletRequest request);

    /**
     * 更新字段状态
     * @param id
     * @param status
     * @param request
     * @return
     */
    boolean updateStatus(Long id,Integer status,HttpServletRequest request);

    /**
     * 删除
     * @param id
     * @param request
     * @return
     */
    boolean delete(Long id,HttpServletRequest request);

    /**
     * 是否有 字段数据
     * @param id
     * @return
     */
    boolean isHaveDictData(Long id);

    /**
     * 是否有 字典数据子集
     * @param parentId
     * @return
     */
    boolean isHaveChildDictData(Long parentId);

    /**
     * 获取所有字典数据
     * @author 小啊刚
     * @date 2021-09-08
     */
    List<SysDictData> getDictDataAll();

    /**
     * 获取
     * @author 小啊刚
     * @date 2021-09-25
     */
    List<DictDataSaveDto> getByType(Long typeId);
}
